/ BBS in a Box 15
/ BBS in a box XV-2.iso / Files II / Publish / A / Alpha 5.96.sit / Tcl / SystemCode / marks.tcl ![]() | < prev | next > |
MacBinary | 1994-08-20 | 5.1 KB | [TEXT/ALFA] |
Confidence | Program | Detection | Match Type | Support |
---|---|---|---|---|
10% | dexvert | MacBinary (archive/macBinary) | fallback | Supported |
1% | dexvert | Text File (text/txt) | fallback | Supported |
100% | file | MacBinary II, inited, Sat Aug 20 18:32:13 1994, modified Sat Aug 20 18:32:13 1994, creator Alpha editor, type ASCII, 4290 bytes "marks.tcl" , at 0x1142 648 bytes resource | default (weak) | |
99% | file | data | default | |
74% | TrID | Macintosh plain text (MacBinary) | default | |
25% | TrID | MacBinary 2 | default (weak) | |
100% | siegfried | fmt/1762 MacBinary (II) | default | |
100% | lsar | MacBinary | default |
id metadata | |
---|---|
key | value |
macFileType | [TEXT] |
macFileCreator | [ALFA] |
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 09 6d 61 72 6b 73 2e | 74 63 6c 00 00 00 00 00 |..marks.|tcl.....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 41 4c 46 | 41 01 00 00 00 00 00 00 |.TEXTALF|A.......|
|00000050| 00 00 00 00 00 10 c2 00 | 00 02 88 aa 7c 34 ed aa |........|....|4..|
|00000060| 7c 34 ed 00 00 00 00 00 | 00 00 00 00 00 00 00 00 ||4......|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 29 85 00 00 |........|....)...|
|00000080| 0d 23 20 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |.# =====|========|
|00000090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000000d0| 3d 3d 3d 0d 23 20 43 6c | 65 61 72 20 6d 61 72 6b |===.# Cl|ear mark|
|000000e0| 73 20 66 6f 72 20 66 72 | 6f 6e 74 20 77 69 6e 64 |s for fr|ont wind|
|000000f0| 6f 77 2e 0d 23 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |ow..#===|========|
|00000100| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000110| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000120| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000130| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000140| 3d 3d 3d 3d 3d 0d 70 72 | 6f 63 20 63 6c 65 61 72 |=====.pr|oc clear|
|00000150| 46 69 6c 65 4d 61 72 6b | 73 20 7b 7d 20 7b 0d 09 |FileMark|s {} {..|
|00000160| 73 65 74 20 6e 6d 20 5b | 6c 69 6e 64 65 78 20 5b |set nm [|lindex [|
|00000170| 77 69 6e 4e 61 6d 65 73 | 20 2d 66 5d 20 30 5d 0d |winNames| -f] 0].|
|00000180| 09 0d 09 66 6f 72 65 61 | 63 68 20 6d 6b 20 5b 67 |...forea|ch mk [g|
|00000190| 65 74 4e 61 6d 65 64 4d | 61 72 6b 73 5d 20 7b 0d |etNamedM|arks] {.|
|000001a0| 09 09 69 66 20 7b 24 6e | 6d 20 3d 3d 20 5b 6c 69 |..if {$n|m == [li|
|000001b0| 6e 64 65 78 20 24 6d 6b | 20 31 5d 7d 20 7b 0d 09 |ndex $mk| 1]} {..|
|000001c0| 09 09 72 65 6d 6f 76 65 | 4e 61 6d 65 64 4d 61 72 |..remove|NamedMar|
|000001d0| 6b 20 2d 6e 20 5b 6c 69 | 6e 64 65 78 20 24 6d 6b |k -n [li|ndex $mk|
|000001e0| 20 30 5d 20 2d 77 20 5b | 6c 69 6e 64 65 78 20 24 | 0] -w [|lindex $|
|000001f0| 6d 6b 20 31 5d 0d 09 09 | 7d 0d 09 7d 0d 7d 0d 0d |mk 1]...|}..}.}..|
|00000200| 0d 70 72 6f 63 20 73 6f | 72 74 4d 61 72 6b 73 46 |.proc so|rtMarksF|
|00000210| 69 6c 65 20 7b 7d 20 7b | 0d 09 69 66 20 7b 5b 61 |ile {} {|..if {[a|
|00000220| 73 6b 79 65 73 6e 6f 20 | 22 52 65 61 6c 6c 79 20 |skyesno |"Really |
|00000230| 73 6f 72 74 20 61 6c 6c | 20 6d 61 72 6b 73 3f 22 |sort all| marks?"|
|00000240| 5d 20 21 3d 20 22 79 65 | 73 22 7d 20 7b 72 65 74 |] != "ye|s"} {ret|
|00000250| 75 72 6e 7d 0d 0d 09 73 | 65 74 20 6e 6d 20 5b 6c |urn}...s|et nm [l|
|00000260| 69 6e 64 65 78 20 5b 77 | 69 6e 4e 61 6d 65 73 20 |index [w|inNames |
|00000270| 2d 66 5d 20 30 5d 0d 09 | 0d 09 73 65 74 20 6d 6b |-f] 0]..|..set mk|
|00000280| 73 20 7b 7d 0d 09 66 6f | 72 65 61 63 68 20 6d 6b |s {}..fo|reach mk|
|00000290| 20 5b 67 65 74 4e 61 6d | 65 64 4d 61 72 6b 73 5d | [getNam|edMarks]|
|000002a0| 20 7b 0d 09 09 69 66 20 | 7b 24 6e 6d 20 3d 3d 20 | {...if |{$nm == |
|000002b0| 5b 6c 69 6e 64 65 78 20 | 24 6d 6b 20 31 5d 7d 20 |[lindex |$mk 1]} |
|000002c0| 7b 0d 09 09 09 72 65 6d | 6f 76 65 4e 61 6d 65 64 |{....rem|oveNamed|
|000002d0| 4d 61 72 6b 20 2d 6e 20 | 5b 6c 69 6e 64 65 78 20 |Mark -n |[lindex |
|000002e0| 24 6d 6b 20 30 5d 20 2d | 77 20 5b 6c 69 6e 64 65 |$mk 0] -|w [linde|
|000002f0| 78 20 24 6d 6b 20 31 5d | 0d 09 09 09 6c 61 70 70 |x $mk 1]|....lapp|
|00000300| 65 6e 64 20 6d 6b 73 20 | 24 6d 6b 0d 09 09 7d 0d |end mks |$mk...}.|
|00000310| 09 7d 0d 0d 09 66 6f 72 | 65 61 63 68 20 6d 6b 20 |.}...for|each mk |
|00000320| 5b 6c 73 6f 72 74 20 24 | 6d 6b 73 5d 20 7b 0d 09 |[lsort $|mks] {..|
|00000330| 09 73 65 74 20 6e 61 6d | 65 20 5b 6c 69 6e 64 65 |.set nam|e [linde|
|00000340| 78 20 24 6d 6b 20 30 5d | 0d 09 09 73 65 74 20 64 |x $mk 0]|...set d|
|00000350| 69 73 70 20 5b 6c 69 6e | 64 65 78 20 24 6d 6b 20 |isp [lin|dex $mk |
|00000360| 32 5d 0d 09 09 73 65 74 | 20 70 6f 73 20 5b 6c 69 |2]...set| pos [li|
|00000370| 6e 64 65 78 20 24 6d 6b | 20 33 5d 0d 09 09 73 65 |ndex $mk| 3]...se|
|00000380| 74 20 65 6e 64 20 5b 6c | 69 6e 64 65 78 20 24 6d |t end [l|index $m|
|00000390| 6b 20 34 5d 0d 09 09 0d | 09 09 73 65 74 4e 61 6d |k 4]....|..setNam|
|000003a0| 65 64 4d 61 72 6b 20 24 | 6e 61 6d 65 20 24 64 69 |edMark $|name $di|
|000003b0| 73 70 20 24 70 6f 73 20 | 24 65 6e 64 0d 09 7d 0d |sp $pos |$end..}.|
|000003c0| 7d 0d 0d 23 20 46 72 6f | 6d 20 4d 61 72 6b 20 4e |}..# Fro|m Mark N|
|000003d0| 61 67 61 74 61 0d 70 72 | 6f 63 20 7a 65 72 6f 61 |agata.pr|oc zeroa|
|000003e0| 64 64 20 7b 6e 75 6d 7d | 20 7b 0d 09 73 65 74 20 |dd {num}| {..set |
|000003f0| 6d 78 20 5b 6d 61 78 50 | 6f 73 5d 0d 09 73 65 74 |mx [maxP|os]..set|
|00000400| 20 6c 65 6e 20 5b 73 74 | 72 69 6e 67 20 6c 65 6e | len [st|ring len|
|00000410| 67 74 68 20 24 6d 78 5d | 0d 09 73 65 74 20 6e 75 |gth $mx]|..set nu|
|00000420| 6d 20 5b 66 6f 72 6d 61 | 74 20 22 25 30 24 7b 6c |m [forma|t "%0${l|
|00000430| 65 6e 7d 64 22 20 24 6e | 75 6d 5d 0d 09 72 65 74 |en}d" $n|um]..ret|
|00000440| 75 72 6e 20 24 6e 75 6d | 0d 7d 0d 0d 70 72 6f 63 |urn $num|.}..proc|
|00000450| 20 6f 72 64 65 72 4d 61 | 72 6b 73 20 7b 7d 20 7b | orderMa|rks {} {|
|00000460| 0d 09 69 66 20 7b 5b 61 | 73 6b 79 65 73 6e 6f 20 |..if {[a|skyesno |
|00000470| 22 52 65 61 6c 6c 79 20 | 72 65 6f 72 64 65 72 20 |"Really |reorder |
|00000480| 61 6c 6c 20 6d 61 72 6b | 73 3f 22 5d 20 21 3d 20 |all mark|s?"] != |
|00000490| 22 79 65 73 22 7d 20 7b | 72 65 74 75 72 6e 7d 0d |"yes"} {|return}.|
|000004a0| 0d 09 73 65 74 20 6e 6d | 20 5b 6c 69 6e 64 65 78 |..set nm| [lindex|
|000004b0| 20 5b 77 69 6e 4e 61 6d | 65 73 20 2d 66 5d 20 30 | [winNam|es -f] 0|
|000004c0| 5d 0d 09 0d 09 73 65 74 | 20 77 6b 73 20 7b 7d 0d |]....set| wks {}.|
|000004d0| 09 66 6f 72 65 61 63 68 | 20 6d 6b 20 5b 67 65 74 |.foreach| mk [get|
|000004e0| 4e 61 6d 65 64 4d 61 72 | 6b 73 5d 20 7b 0d 09 09 |NamedMar|ks] {...|
|000004f0| 69 66 20 7b 24 6e 6d 20 | 3d 3d 20 5b 6c 69 6e 64 |if {$nm |== [lind|
|00000500| 65 78 20 24 6d 6b 20 31 | 5d 7d 20 7b 0d 09 09 09 |ex $mk 1|]} {....|
|00000510| 72 65 6d 6f 76 65 4e 61 | 6d 65 64 4d 61 72 6b 20 |removeNa|medMark |
|00000520| 2d 6e 20 5b 6c 69 6e 64 | 65 78 20 24 6d 6b 20 30 |-n [lind|ex $mk 0|
|00000530| 5d 20 2d 77 20 24 6e 6d | 0d 09 09 09 73 65 74 20 |] -w $nm|....set |
|00000540| 6e 61 6d 65 20 5b 6c 69 | 6e 64 65 78 20 24 6d 6b |name [li|ndex $mk|
|00000550| 20 30 5d 0d 09 09 09 73 | 65 74 20 64 69 73 70 20 | 0]....s|et disp |
|00000560| 5b 6c 69 6e 64 65 78 20 | 24 6d 6b 20 32 5d 0d 09 |[lindex |$mk 2]..|
|00000570| 09 09 73 65 74 20 70 6f | 73 20 5b 6c 69 6e 64 65 |..set po|s [linde|
|00000580| 78 20 24 6d 6b 20 33 5d | 0d 09 09 09 73 65 74 20 |x $mk 3]|....set |
|00000590| 65 6e 64 20 5b 6c 69 6e | 64 65 78 20 24 6d 6b 20 |end [lin|dex $mk |
|000005a0| 34 5d 0d 09 09 09 73 65 | 74 20 70 6f 73 20 5b 7a |4]....se|t pos [z|
|000005b0| 65 72 6f 61 64 64 20 24 | 70 6f 73 5d 0d 09 09 09 |eroadd $|pos]....|
|000005c0| 73 65 74 20 77 6b 20 5b | 6c 69 73 74 20 24 70 6f |set wk [|list $po|
|000005d0| 73 20 24 64 69 73 70 20 | 24 6e 61 6d 65 20 24 65 |s $disp |$name $e|
|000005e0| 6e 64 5d 0d 09 09 09 6c | 61 70 70 65 6e 64 20 77 |nd]....l|append w|
|000005f0| 6b 73 20 24 77 6b 0d 09 | 09 7d 0d 09 7d 0d 0d 09 |ks $wk..|.}..}...|
|00000600| 66 6f 72 65 61 63 68 20 | 77 6b 20 5b 6c 73 6f 72 |foreach |wk [lsor|
|00000610| 74 20 24 77 6b 73 5d 20 | 7b 0d 09 09 73 65 74 20 |t $wks] |{...set |
|00000620| 6e 61 6d 65 20 5b 6c 69 | 6e 64 65 78 20 24 77 6b |name [li|ndex $wk|
|00000630| 20 32 5d 0d 09 09 73 65 | 74 20 64 69 73 70 20 5b | 2]...se|t disp [|
|00000640| 6c 69 6e 64 65 78 20 24 | 77 6b 20 31 5d 0d 09 09 |lindex $|wk 1]...|
|00000650| 73 65 74 20 70 6f 73 20 | 5b 6c 69 6e 64 65 78 20 |set pos |[lindex |
|00000660| 24 77 6b 20 30 5d 0d 09 | 09 73 65 74 20 65 6e 64 |$wk 0]..|.set end|
|00000670| 20 5b 6c 69 6e 64 65 78 | 20 24 77 6b 20 33 5d 0d | [lindex| $wk 3].|
|00000680| 09 09 0d 09 09 73 65 74 | 4e 61 6d 65 64 4d 61 72 |.....set|NamedMar|
|00000690| 6b 20 24 6e 61 6d 65 20 | 24 64 69 73 70 20 24 70 |k $name |$disp $p|
|000006a0| 6f 73 20 24 65 6e 64 0d | 09 7d 0d 7d 0d 0d 23 3d |os $end.|.}.}..#=|
|000006b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000006c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000006d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000006e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000006f0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 0d |========|=======.|
|00000700| 70 72 6f 63 20 6d 61 72 | 6b 46 69 6c 65 20 7b 7d |proc mar|kFile {}|
|00000710| 20 7b 0d 09 67 6c 6f 62 | 61 6c 20 6d 6f 64 65 0d | {..glob|al mode.|
|00000720| 0d 09 73 65 74 20 66 20 | 5b 6c 69 6e 64 65 78 20 |..set f |[lindex |
|00000730| 5b 77 69 6e 4e 61 6d 65 | 73 20 2d 66 5d 20 30 5d |[winName|s -f] 0]|
|00000740| 0d 09 0d 09 77 61 74 63 | 68 43 75 72 73 6f 72 0d |....watc|hCursor.|
|00000750| 09 69 66 20 7b 28 5b 6c | 73 65 61 72 63 68 20 5b |.if {([l|search [|
|00000760| 67 65 74 4e 61 6d 65 64 | 4d 61 72 6b 73 5d 20 22 |getNamed|Marks] "|
|00000770| 2a 24 66 2a 22 5d 20 3e | 3d 20 30 29 20 26 26 20 |*$f*"] >|= 0) && |
|00000780| 5b 61 73 6b 79 65 73 6e | 6f 20 22 43 6c 65 61 72 |[askyesn|o "Clear|
|00000790| 20 70 72 65 76 69 6f 75 | 73 20 6d 61 72 6b 73 3f | previou|s marks?|
|000007a0| 20 22 5d 20 3d 3d 20 22 | 79 65 73 22 7d 20 7b 0d | "] == "|yes"} {.|
|000007b0| 09 09 63 6c 65 61 72 46 | 69 6c 65 4d 61 72 6b 73 |..clearF|ileMarks|
|000007c0| 0d 09 7d 0d 09 0d 09 63 | 61 74 63 68 20 22 24 7b |..}....c|atch "${|
|000007d0| 6d 6f 64 65 7d 4d 61 72 | 6b 46 69 6c 65 22 0d 7d |mode}Mar|kFile".}|
|000007e0| 0d 0d 70 72 6f 63 20 6d | 61 72 6b 41 6c 70 68 61 |..proc m|arkAlpha|
|000007f0| 43 6f 6d 6d 61 6e 64 73 | 20 7b 7d 20 7b 0d 09 73 |Commands| {} {..s|
|00000800| 65 74 20 65 6e 64 20 5b | 6d 61 78 50 6f 73 5d 0d |et end [|maxPos].|
|00000810| 09 73 65 74 20 70 6f 73 | 20 30 0d 09 73 65 74 20 |.set pos| 0..set |
|00000820| 6c 20 7b 7d 0d 09 73 65 | 74 20 6e 75 6d 20 30 0d |l {}..se|t num 0.|
|00000830| 09 77 68 69 6c 65 20 7b | 21 5b 63 61 74 63 68 20 |.while {|![catch |
|00000840| 7b 73 65 61 72 63 68 20 | 2d 66 20 31 20 2d 72 20 |{search |-f 1 -r |
|00000850| 31 20 2d 6d 20 30 20 2d | 69 20 31 20 7b 5e a5 20 |1 -m 0 -|i 1 {^. |
|00000860| 5b 61 2d 7a 5d 2b 7d 20 | 24 70 6f 73 7d 20 72 65 |[a-z]+} |$pos} re|
|00000870| 73 5d 7d 20 7b 0d 09 09 | 73 65 74 20 73 74 61 72 |s]} {...|set star|
|00000880| 74 20 5b 6c 69 6e 64 65 | 78 20 24 72 65 73 20 30 |t [linde|x $res 0|
|00000890| 5d 0d 09 09 73 65 74 20 | 65 6e 64 20 5b 6c 69 6e |]...set |end [lin|
|000008a0| 64 65 78 20 24 72 65 73 | 20 31 5d 0d 09 09 73 65 |dex $res| 1]...se|
|000008b0| 74 20 74 65 78 74 20 5b | 6c 69 6e 64 65 78 20 5b |t text [|lindex [|
|000008c0| 67 65 74 54 65 78 74 20 | 24 73 74 61 72 74 20 24 |getText |$start $|
|000008d0| 65 6e 64 5d 20 31 5d 0d | 09 09 73 65 74 20 69 6e |end] 1].|..set in|
|000008e0| 64 73 28 24 74 65 78 74 | 29 20 24 73 74 61 72 74 |ds($text|) $start|
|000008f0| 0d 09 09 73 65 74 20 70 | 6f 73 20 5b 6e 65 78 74 |...set p|os [next|
|00000900| 4c 69 6e 65 53 74 61 72 | 74 20 24 65 6e 64 5d 0d |LineStar|t $end].|
|00000910| 09 09 69 6e 63 72 20 6e | 75 6d 0d 09 09 6d 65 73 |..incr n|um...mes|
|00000920| 73 61 67 65 20 22 24 6e | 75 6d 22 0d 09 7d 0d 0d |sage "$n|um"..}..|
|00000930| 09 69 66 20 7b 5b 69 6e | 66 6f 20 65 78 69 73 74 |.if {[in|fo exist|
|00000940| 73 20 69 6e 64 73 5d 7d | 20 7b 0d 09 09 66 6f 72 |s inds]}| {...for|
|00000950| 65 61 63 68 20 66 20 5b | 6c 73 6f 72 74 20 5b 61 |each f [|lsort [a|
|00000960| 72 72 61 79 20 6e 61 6d | 65 73 20 69 6e 64 73 5d |rray nam|es inds]|
|00000970| 5d 20 7b 0d 09 09 09 73 | 65 74 4e 61 6d 65 64 4d |] {....s|etNamedM|
|00000980| 61 72 6b 20 24 66 20 24 | 69 6e 64 73 28 24 66 29 |ark $f $|inds($f)|
|00000990| 20 24 69 6e 64 73 28 24 | 66 29 20 24 69 6e 64 73 | $inds($|f) $inds|
|000009a0| 28 24 66 29 0d 09 09 7d | 0d 09 7d 0d 7d 09 0d 0d |($f)...}|..}.}...|
|000009b0| 70 72 6f 63 20 6d 61 72 | 6b 49 6e 74 72 6f 20 7b |proc mar|kIntro {|
|000009c0| 7d 20 7b 0d 09 73 65 74 | 20 65 6e 64 20 5b 6d 61 |} {..set| end [ma|
|000009d0| 78 50 6f 73 5d 0d 09 73 | 65 74 20 70 6f 73 20 30 |xPos]..s|et pos 0|
|000009e0| 0d 09 73 65 74 20 6c 20 | 7b 7d 0d 09 73 65 74 20 |..set l |{}..set |
|000009f0| 6e 75 6d 20 30 0d 09 77 | 68 69 6c 65 20 7b 21 5b |num 0..w|hile {![|
|00000a00| 63 61 74 63 68 20 7b 73 | 65 61 72 63 68 20 2d 66 |catch {s|earch -f|
|00000a10| 20 31 20 2d 72 20 31 20 | 2d 6d 20 30 20 2d 69 20 | 1 -r 1 |-m 0 -i |
|00000a20| 30 20 7b 5e 3d 3d 20 7d | 20 24 70 6f 73 7d 20 72 |0 {^== }| $pos} r|
|00000a30| 65 73 5d 7d 20 7b 0d 09 | 09 73 65 74 20 73 74 61 |es]} {..|.set sta|
|00000a40| 72 74 20 5b 6c 69 6e 64 | 65 78 20 24 72 65 73 20 |rt [lind|ex $res |
|00000a50| 31 5d 0d 09 09 73 65 74 | 20 65 6e 64 20 5b 65 78 |1]...set| end [ex|
|00000a60| 70 72 20 5b 6e 65 78 74 | 4c 69 6e 65 53 74 61 72 |pr [next|LineStar|
|00000a70| 74 20 24 73 74 61 72 74 | 5d 20 2d 20 31 5d 0d 09 |t $start|] - 1]..|
|00000a80| 09 73 65 74 20 74 65 78 | 74 20 5b 67 65 74 54 65 |.set tex|t [getTe|
|00000a90| 78 74 20 24 73 74 61 72 | 74 20 24 65 6e 64 5d 0d |xt $star|t $end].|
|00000aa0| 09 09 73 65 74 20 69 6e | 64 73 28 24 74 65 78 74 |..set in|ds($text|
|00000ab0| 29 20 5b 6c 69 6e 65 53 | 74 61 72 74 20 24 73 74 |) [lineS|tart $st|
|00000ac0| 61 72 74 5d 0d 09 09 73 | 65 74 20 70 6f 73 20 5b |art]...s|et pos [|
|00000ad0| 6e 65 78 74 4c 69 6e 65 | 53 74 61 72 74 20 24 65 |nextLine|Start $e|
|00000ae0| 6e 64 5d 0d 09 09 69 6e | 63 72 20 6e 75 6d 0d 09 |nd]...in|cr num..|
|00000af0| 09 6d 65 73 73 61 67 65 | 20 22 24 6e 75 6d 22 0d |.message| "$num".|
|00000b00| 09 7d 0d 0d 09 69 66 20 | 7b 5b 69 6e 66 6f 20 65 |.}...if |{[info e|
|00000b10| 78 69 73 74 73 20 69 6e | 64 73 5d 7d 20 7b 0d 09 |xists in|ds]} {..|
|00000b20| 09 66 6f 72 65 61 63 68 | 20 66 20 5b 6c 73 6f 72 |.foreach| f [lsor|
|00000b30| 74 20 5b 61 72 72 61 79 | 20 6e 61 6d 65 73 20 69 |t [array| names i|
|00000b40| 6e 64 73 5d 5d 20 7b 0d | 09 09 09 73 65 74 4e 61 |nds]] {.|...setNa|
|00000b50| 6d 65 64 4d 61 72 6b 20 | 24 66 20 24 69 6e 64 73 |medMark |$f $inds|
|00000b60| 28 24 66 29 20 24 69 6e | 64 73 28 24 66 29 20 24 |($f) $in|ds($f) $|
|00000b70| 69 6e 64 73 28 24 66 29 | 0d 09 09 7d 0d 09 7d 0d |inds($f)|...}..}.|
|00000b80| 7d 0d 0d 23 20 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |}..# ===|========|
|00000b90| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000ba0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000bb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000bc0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000bd0| 3d 3d 3d 3d 3d 0d 23 20 | 53 69 6d 70 6c 65 20 6d |=====.# |Simple m|
|00000be0| 61 72 6b 20 73 74 61 63 | 6b 20 69 6d 70 6c 65 6d |ark stac|k implem|
|00000bf0| 65 6e 74 61 74 69 6f 6e | 0d 23 20 3d 3d 3d 3d 3d |entation|.# =====|
|00000c00| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000c10| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000c20| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000c30| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000c40| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 0d 70 72 6f 63 |========|===.proc|
|00000c50| 20 70 75 73 68 4d 61 72 | 6b 20 7b 7d 20 7b 0d 09 | pushMar|k {} {..|
|00000c60| 67 6c 6f 62 61 6c 20 6d | 61 72 6b 53 74 61 63 6b |global m|arkStack|
|00000c70| 0d 09 67 6c 6f 62 61 6c | 20 6d 61 72 6b 4e 61 6d |..global| markNam|
|00000c80| 65 0d 09 0d 09 73 65 74 | 20 6e 61 6d 65 20 6d 61 |e....set| name ma|
|00000c90| 72 6b 24 6d 61 72 6b 4e | 61 6d 65 0d 09 69 6e 63 |rk$markN|ame..inc|
|00000ca0| 72 20 6d 61 72 6b 4e 61 | 6d 65 0d 09 63 72 65 61 |r markNa|me..crea|
|00000cb0| 74 65 54 4d 61 72 6b 20 | 24 6e 61 6d 65 20 5b 67 |teTMark |$name [g|
|00000cc0| 65 74 50 6f 73 5d 0d 09 | 73 65 74 20 66 69 6c 65 |etPos]..|set file|
|00000cd0| 4e 61 6d 65 20 5b 6c 69 | 6e 64 65 78 20 5b 77 69 |Name [li|ndex [wi|
|00000ce0| 6e 4e 61 6d 65 73 20 2d | 66 5d 20 30 5d 0d 09 73 |nNames -|f] 0]..s|
|00000cf0| 65 74 20 6d 61 72 6b 53 | 74 61 63 6b 20 5b 6c 69 |et markS|tack [li|
|00000d00| 6e 73 65 72 74 20 24 6d | 61 72 6b 53 74 61 63 6b |nsert $m|arkStack|
|00000d10| 20 30 20 5b 6c 69 73 74 | 20 24 66 69 6c 65 4e 61 | 0 [list| $fileNa|
|00000d20| 6d 65 20 24 6e 61 6d 65 | 5d 5d 0d 09 6d 65 73 73 |me $name|]]..mess|
|00000d30| 61 67 65 20 5b 63 6f 6e | 63 61 74 20 4d 61 72 6b |age [con|cat Mark|
|00000d40| 20 5b 6c 6c 65 6e 67 74 | 68 20 24 6d 61 72 6b 53 | [llengt|h $markS|
|00000d50| 74 61 63 6b 5d 20 50 75 | 73 68 65 64 5d 0d 7d 0d |tack] Pu|shed].}.|
|00000d60| 0d 70 72 6f 63 20 70 6f | 70 4d 61 72 6b 20 7b 7d |.proc po|pMark {}|
|00000d70| 20 7b 0d 09 67 6c 6f 62 | 61 6c 20 6d 61 72 6b 53 | {..glob|al markS|
|00000d80| 74 61 63 6b 0d 09 69 66 | 20 7b 5b 6c 6c 65 6e 67 |tack..if| {[lleng|
|00000d90| 74 68 20 24 6d 61 72 6b | 53 74 61 63 6b 5d 20 3d |th $mark|Stack] =|
|00000da0| 3d 20 22 30 22 7d 20 7b | 0d 09 09 6d 65 73 73 61 |= "0"} {|...messa|
|00000db0| 67 65 20 22 54 68 65 20 | 6d 61 72 6b 20 73 74 61 |ge "The |mark sta|
|00000dc0| 63 6b 20 69 73 20 65 6d | 70 74 79 21 22 0d 09 09 |ck is em|pty!"...|
|00000dd0| 72 65 74 75 72 6e 0d 09 | 7d 0d 09 73 65 74 20 6d |return..|}..set m|
|00000de0| 61 72 6b 20 5b 6c 69 6e | 64 65 78 20 5b 6c 69 6e |ark [lin|dex [lin|
|00000df0| 64 65 78 20 24 6d 61 72 | 6b 53 74 61 63 6b 20 30 |dex $mar|kStack 0|
|00000e00| 5d 20 31 5d 0d 09 73 65 | 74 20 6d 61 72 6b 53 74 |] 1]..se|t markSt|
|00000e10| 61 63 6b 20 5b 6c 72 65 | 70 6c 61 63 65 20 24 6d |ack [lre|place $m|
|00000e20| 61 72 6b 53 74 61 63 6b | 20 30 20 30 5d 0d 09 69 |arkStack| 0 0]..i|
|00000e30| 66 20 7b 5b 63 61 74 63 | 68 20 7b 67 6f 74 6f 54 |f {[catc|h {gotoT|
|00000e40| 4d 61 72 6b 20 24 6d 61 | 72 6b 7d 5d 7d 20 7b 0d |Mark $ma|rk}]} {.|
|00000e50| 09 09 70 6f 70 4d 61 72 | 6b 0d 09 09 72 65 74 75 |..popMar|k...retu|
|00000e60| 72 6e 0d 09 7d 0d 09 6d | 65 73 73 61 67 65 20 5b |rn..}..m|essage [|
|00000e70| 63 6f 6e 63 61 74 20 4d | 61 72 6b 20 5b 6c 6c 65 |concat M|ark [lle|
|00000e80| 6e 67 74 68 20 24 6d 61 | 72 6b 53 74 61 63 6b 5d |ngth $ma|rkStack]|
|00000e90| 20 50 6f 70 70 65 64 5d | 0d 7d 0d 0d 09 0d 23 20 | Popped]|.}....# |
|00000ea0| 52 65 74 75 72 6e 73 20 | 27 6c 69 73 74 27 20 6d |Returns |'list' m|
|00000eb0| 69 6e 75 73 20 61 6c 6c | 20 74 6f 70 2d 6c 65 76 |inus all| top-lev|
|00000ec0| 65 6c 20 65 6c 65 6d 65 | 6e 74 73 20 6d 61 74 63 |el eleme|nts matc|
|00000ed0| 68 69 6e 67 20 27 70 61 | 74 27 2e 0d 23 20 55 73 |hing 'pa|t'..# Us|
|00000ee0| 65 64 20 69 6e 20 27 63 | 6c 6f 73 65 48 6f 6f 6b |ed in 'c|loseHook|
|00000ef0| 73 27 20 74 6f 20 70 72 | 75 6e 65 20 74 68 65 20 |s' to pr|une the |
|00000f00| 6d 61 72 6b 20 73 74 61 | 63 6b 2e 0d 70 72 6f 63 |mark sta|ck..proc|
|00000f10| 20 72 65 6d 6f 76 65 50 | 61 74 20 7b 6c 69 73 74 | removeP|at {list|
|00000f20| 20 70 61 74 7d 20 7b 0d | 09 77 68 69 6c 65 20 31 | pat} {.|.while 1|
|00000f30| 20 7b 0d 09 09 73 65 74 | 20 69 6e 64 20 5b 6c 73 | {...set| ind [ls|
|00000f40| 65 61 72 63 68 20 24 6c | 69 73 74 20 24 70 61 74 |earch $l|ist $pat|
|00000f50| 5d 0d 09 09 69 66 20 7b | 24 69 6e 64 20 3d 3d 20 |]...if {|$ind == |
|00000f60| 22 2d 31 22 7d 20 7b 72 | 65 74 75 72 6e 20 24 6c |"-1"} {r|eturn $l|
|00000f70| 69 73 74 7d 0d 09 09 73 | 65 74 20 6c 69 73 74 20 |ist}...s|et list |
|00000f80| 5b 6c 72 65 70 6c 61 63 | 65 20 24 6c 69 73 74 20 |[lreplac|e $list |
|00000f90| 24 69 6e 64 20 24 69 6e | 64 5d 0d 09 7d 0d 7d 0d |$ind $in|d]..}.}.|
|00000fa0| 0d 0d 0d 0d 23 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |....#===|========|
|00000fb0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000fc0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000fd0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000fe0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000ff0| 3d 3d 3d 3d 3d 0d 23 20 | 4f 6e 6c 79 20 77 6f 72 |=====.# |Only wor|
|00001000| 6b 73 20 77 68 69 6c 65 | 20 69 6e 20 73 61 6d 65 |ks while| in same|
|00001010| 20 66 69 6c 65 2e 0d 23 | 3d 3d 3d 3d 3d 3d 3d 3d | file..#|========|
|00001020| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001030| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001040| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001050| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00001060| 3d 3d 3d 3d 3d 3d 3d 3d | 0d 0d 70 72 6f 63 20 70 |========|..proc p|
|00001070| 6f 69 6e 74 54 6f 52 65 | 67 69 73 74 65 72 20 7b |ointToRe|gister {|
|00001080| 7d 20 7b 0d 09 6d 65 73 | 73 61 67 65 20 22 4c 65 |} {..mes|sage "Le|
|00001090| 74 74 65 72 3f 22 0d 09 | 63 72 65 61 74 65 54 4d |tter?"..|createTM|
|000010a0| 61 72 6b 20 5b 73 65 74 | 20 63 20 5b 67 65 74 43 |ark [set| c [getC|
|000010b0| 68 61 72 5d 5d 20 5b 67 | 65 74 50 6f 73 5d 0d 09 |har]] [g|etPos]..|
|000010c0| 6d 65 73 73 61 67 65 20 | 22 52 65 67 69 73 74 65 |message |"Registe|
|000010d0| 72 20 27 24 63 27 22 0d | 7d 0d 0d 0d 70 72 6f 63 |r '$c'".|}...proc|
|000010e0| 20 6a 75 6d 70 54 6f 52 | 65 67 69 73 74 65 72 20 | jumpToR|egister |
|000010f0| 7b 7d 20 7b 0d 09 6d 65 | 73 73 61 67 65 20 22 4c |{} {..me|ssage "L|
|00001100| 65 74 74 65 72 3f 22 0d | 09 67 6f 74 6f 54 4d 61 |etter?".|.gotoTMa|
|00001110| 72 6b 20 5b 73 65 74 20 | 63 20 5b 67 65 74 43 68 |rk [set |c [getCh|
|00001120| 61 72 5d 5d 0d 09 6d 65 | 73 73 61 67 65 20 22 52 |ar]]..me|ssage "R|
|00001130| 65 67 69 73 74 65 72 20 | 27 24 63 27 22 0d 7d 0d |egister |'$c'".}.|
|00001140| 0d 0d 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001150| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001160| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001170| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001180| 00 00 01 00 00 00 02 46 | 00 00 01 46 00 00 00 42 |.......F|...F...B|
|00001190| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000011a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000011b0| 09 6d 61 72 6b 73 2e 74 | 63 6c 02 00 02 00 54 45 |.marks.t|cl....TE|
|000011c0| 58 54 41 4c 46 41 01 00 | ff ff ff ff 00 00 00 00 |XTALFA..|........|
|000011d0| 02 00 54 45 58 54 41 4c | 46 41 01 00 ff ff ff ff |..TEXTAL|FA......|
|000011e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000011f0| 00 00 aa 0f 6f 22 00 00 | 10 c2 00 00 02 88 6f 61 |....o"..|......oa|
|00001200| 64 20 74 68 69 73 20 66 | 69 6c 65 2c 20 68 69 74 |d this f|ile, hit|
|00001210| 0d 23 20 63 6f 6e 74 72 | 6f 6c 2d 69 2c 20 61 6e |.# contr|ol-i, an|
|00001220| 64 20 61 20 66 6f 72 20 | 74 65 6d 70 6c 61 74 65 |d a for |template|
|00001230| 20 77 69 6c 6c 20 61 70 | 70 65 61 72 2e 20 43 6f | will ap|pear. Co|
|00001240| 6e 73 65 63 75 74 69 76 | 65 20 63 6f 6e 74 72 6f |nsecutiv|e contro|
|00001250| 6c 2d 6a 27 73 0d 23 20 | 77 69 6c 6c 20 73 74 65 |l-j's.# |will ste|
|00001260| 70 20 79 6f 75 20 74 68 | 6f 75 67 68 20 76 61 72 |p you th|ough var|
|00001270| 69 6f 75 73 20 66 69 65 | 6c 64 73 20 6f 66 20 74 |ious fie|lds of t|
|00001280| 00 00 00 f6 00 0c 00 00 | 00 c6 00 00 00 c6 0f 63 |........|.......c|
|00001290| 6c 65 61 72 46 69 6c 65 | 4d 61 72 6b 73 00 00 00 |learFile|Marks...|
|000012a0| 10 5c 00 00 10 5c 0f 6a | 75 6d 70 54 6f 52 65 67 |.\...\.j|umpToReg|
|000012b0| 69 73 74 65 72 00 00 00 | 07 62 00 00 07 62 11 6d |ister...|.b...b.m|
|000012c0| 61 72 6b 41 6c 70 68 61 | 43 6f 6d 6d 61 6e 64 73 |arkAlpha|Commands|
|000012d0| 00 00 06 80 00 00 06 80 | 09 6d 61 72 6b 46 69 6c |........|.markFil|
|000012e0| 65 00 00 00 09 30 00 00 | 09 30 09 6d 61 72 6b 49 |e....0..|.0.markI|
|000012f0| 6e 74 72 6f 00 00 03 cc | 00 00 03 cc 0b 6f 72 64 |ntro....|.....ord|
|00001300| 65 72 4d 61 72 6b 73 00 | 00 00 0f ea 00 00 0f ea |erMarks.|........|
|00001310| 0f 70 6f 69 6e 74 54 6f | 52 65 67 69 73 74 65 72 |.pointTo|Register|
|00001320| 00 00 0c e1 00 00 0c e1 | 07 70 6f 70 4d 61 72 6b |........|.popMark|
|00001330| 00 00 0b cc 00 00 0b cc | 09 70 75 73 68 4d 61 72 |........|.pushMar|
|00001340| 6b 00 00 00 0e 8c 00 00 | 0e 8c 09 72 65 6d 6f 76 |k.......|...remov|
|00001350| 65 50 61 74 00 00 01 81 | 00 00 01 81 0d 73 6f 72 |ePat....|.....sor|
|00001360| 74 4d 61 72 6b 73 46 69 | 6c 65 00 00 03 56 00 00 |tMarksFi|le...V..|
|00001370| 03 56 07 7a 65 72 6f 61 | 64 64 00 00 00 48 00 09 |.V.zeroa|dd...H..|
|00001380| 4d 6f 6e 61 63 6f 00 00 | 00 d9 b2 f4 00 00 00 00 |Monaco..|........|
|00001390| 00 f0 b2 c0 00 03 2f 0a | 03 0d 00 e7 c9 fc 00 00 |....../.|........|
|000013a0| 00 04 00 04 00 28 00 03 | 01 ca 02 79 00 28 00 03 |.....(..|...y.(..|
|000013b0| 01 ca 02 79 00 08 76 53 | 00 00 0c e1 00 00 0c e1 |...y..vS|........|
|000013c0| 00 00 0a 84 01 00 00 00 | 01 00 00 00 02 46 00 00 |........|.....F..|
|000013d0| 01 46 00 00 00 42 00 d9 | b2 f4 0c 20 00 00 00 1c |.F...B..|... ....|
|000013e0| 00 3e 00 00 4d 50 53 52 | 00 01 00 0a 03 ef 00 00 |.>..MPSR|........|
|000013f0| 00 00 00 00 00 00 00 00 | 03 ed ff ff 00 00 00 fa |........|........|
|00001400| 00 de 0b 80 03 74 61 62 | 00 00 00 00 00 00 00 00 |.....tab|........|
|00001410| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001420| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001430| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001440| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001450| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001460| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00001470| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+